// UTF-8 w/o BOM

#ifndef __U_H__
#define __U_H__


/* Controls and special characters */
#define U_NULL                                (0x0000)
#define U_HORIZONTAL_TABULATION               (0x0009)
#define U_HALF_SPACE                          (0xF085)
#define U_SPACE                               (0x0020) 
#define U_EXCLAMATION_MARK                    (0x0021)
#define U_QUOTATION_MARK                      (0x0022)
#define U_NUMBER_SIGN                         (0x0023)
#define U_DOLLAR_SIGN                         (0X0024)
#define U_PERCENT_SIGN                        (0x0025)
#define U_AMPERSAND                           (0x0026)
#define U_APOSTROPHE                          (0x0027)
#define U_LEFT_PARENTHESIS                    (0x0028)
#define U_RIGHT_PARENTHESIS                   (0x0029)
#define U_ASTERISK                            (0x002A)
#define U_PLUS_SIGN                           (0x002B)
#define U_COMMA                               (0x002C)
#define U_HYPHEN_MINUS                        (0x2010)
#define U_MINUS                               (0x002D)
#define U_PERIOD                              (0x002E)
#define U_SLASH                               (0x002F)
#define U_COLON                               (0x003A)
#define U_SEMICOLON                           (0x003B)
#define U_LESS_THAN_SIGN                      (0x003C)
#define U_EQUALS_SIGN                         (0x003D)
#define U_GREATER_THAN_SIGN                   (0x003E)
#define U_QUESTION_MARK                       (0x003F)
#define U_COMMERCIAL_AT                       (0x0040) 
#define U_LEFT_SQUARE_BRACKET                 (0x005B)
#define U_BACKSLASH                           (0x005C)
#define U_RIGHT_SQUARE_BRACKET                (0x005D)
#define U_CARET                               (0x005E)
#define U_NEW_LINE                            (0x21B5) /* \n */
#define U_LINE_FEED                           (0x000A)
#define U_VERTICAL_TABULATION                 (0x000B)
#define U_FORM_FEED                           (0x000C) /* \f */
#define U_CARRIAGE_RETURN                     (0x000D) /* \r */
#define U_LEFT_SINGLE_QUOTATION_MARK          (0x2018)
#define U_LEFT_DOUBLE_QUOTATION_MARK          (0x201C)
#define U_INVERTED_QUESTION_MARK              (0x00BF)
#define U_INVERTED_EXCLAMATION_MARK           (0x00A1)
#define U_POUND_SIGN                          (0x00A3)
#define U_EURO_SIGN                           (0x20AC)
#define U_INTERNATIONAL_CURRENCY_SIGN         (0x00A4)
#define U_YEN_SIGN                            (0x00A5)
#define U_SECTION_SIGN                        (0x00A7)
#define U_LEFT_SQUARE_BRACKET                 (0x005B)
#define U_RIGHT_SQUARE_BRACKET                (0x005D)
#define U_LEFT_CURLY_BRACKET                  (0x007B)
#define U_RIGHT_CURLY_BRACKET                 (0x007D)
#define U_BACKSLASH                           (0x005C)
#define U_UNDER_SCORE                         (0x005F) 
#define U_TILDE                               (0x007E)
#define U_ANIMATION_ATTACHMENT_TYPE           (0xF09D)
#define U_PICTURE_ATTACHMENT_TYPE             (0xF09E)
#define U_SOUND_ATTACHMENT_TYPE               (0xF09F)
#define U_MULTIPLICATION_SIGN                 (0x00D7)
#define U_SOFT_HYPHEN                         (0x00AD)
#define U_GRAVE_ACCENT                        (0x0060) 
#define U_VERTICAL_LINE                       (0x007C)


/* LAT Letters a - z */
#define U_LAT_S_A                (0x0061)
#define U_LAT_S_B                (0x0062)
#define U_LAT_S_C                (0x0063)
#define U_LAT_S_D                (0x0064)
#define U_LAT_S_E                (0x0065)
#define U_LAT_S_F                (0x0066)
#define U_LAT_S_G                (0x0067)
#define U_LAT_S_H                (0x0068)
#define U_LAT_S_I                (0x0069)
#define U_LAT_S_J                (0x006A)
#define U_LAT_S_K                (0x006B)
#define U_LAT_S_L                (0x006C)
#define U_LAT_S_M                (0x006D)
#define U_LAT_S_N                (0x006E)
#define U_LAT_S_O                (0x006F)
#define U_LAT_S_P                (0x0070)
#define U_LAT_S_Q                (0x0071)
#define U_LAT_S_R                (0x0072)
#define U_LAT_S_S                (0x0073)
#define U_LAT_S_T                (0x0074)
#define U_LAT_S_U                (0x0075)
#define U_LAT_S_V                (0x0076)
#define U_LAT_S_W                (0x0077)
#define U_LAT_S_X                (0x0078)
#define U_LAT_S_Y                (0x0079)
#define U_LAT_S_Z                (0x007A)


/* LAT C letters A - Z */
#define U_LAT_C_A              (0x0041)
#define U_LAT_C_B              (0x0042)
#define U_LAT_C_C              (0x0043)
#define U_LAT_C_D              (0x0044)
#define U_LAT_C_E              (0x0045)
#define U_LAT_C_F              (0x0046)
#define U_LAT_C_G              (0x0047)
#define U_LAT_C_H              (0x0048)
#define U_LAT_C_I              (0x0049)
#define U_LAT_C_J              (0x004A)
#define U_LAT_C_K              (0x004B)
#define U_LAT_C_L              (0x004C)
#define U_LAT_C_M              (0x004D)
#define U_LAT_C_N              (0x004E)
#define U_LAT_C_O              (0x004F)
#define U_LAT_C_P              (0x0050)
#define U_LAT_C_Q              (0x0051)
#define U_LAT_C_R              (0x0052)
#define U_LAT_C_S              (0x0053)
#define U_LAT_C_T              (0x0054)
#define U_LAT_C_U              (0x0055)
#define U_LAT_C_V              (0x0056)
#define U_LAT_C_W              (0x0057)
#define U_LAT_C_X              (0x0058)
#define U_LAT_C_Y              (0x0059)
#define U_LAT_C_Z              (0x005A)


/* digits */
#define U_ZERO                          (0x0030)
#define U_ONE                           (0x0031)
#define U_TWO                           (0x0032)
#define U_THREE                         (0x0033)
#define U_FOUR                          (0x0034)
#define U_FIVE                          (0x0035)
#define U_SIX                           (0x0036)
#define U_SEVEN                         (0x0037)
#define U_EIGHT                         (0x0038)
#define U_NINE                          (0x0039)


/* Russian C letters  */
#define U_CYR_C_A           (0x0410)
#define U_CYR_C_BE          (0x0411)
#define U_CYR_C_VE          (0x0412)
#define U_CYR_C_GHE         (0x0413)
#define U_CYR_C_DE          (0x0414)
#define U_CYR_C_IE          (0x0415)
#define U_CYR_C_IO          (0x0401)
#define U_CYR_C_ZHE         (0x0416)
#define U_CYR_C_ZE          (0x0417)
#define U_CYR_C_I           (0x0418)
#define U_CYR_C_SHORT_I     (0x0419)
#define U_CYR_C_KA          (0x041A)
#define U_CYR_C_EL          (0x041B)
#define U_CYR_C_EM          (0x041C)
#define U_CYR_C_EN          (0x041D)
#define U_CYR_C_O           (0x041E)
#define U_CYR_C_PE          (0x041F)
#define U_CYR_C_ER          (0x0420)
#define U_CYR_C_ES          (0x0421)
#define U_CYR_C_TE          (0x0422)
#define U_CYR_C_U           (0x0423)
#define U_CYR_C_EF          (0x0424)
#define U_CYR_C_HA          (0x0425)
#define U_CYR_C_TSE         (0x0426)
#define U_CYR_C_CHE         (0x0427)
#define U_CYR_C_SHA         (0x0428)
#define U_CYR_C_SHCHA       (0x0429)
#define U_CYR_C_HARD_SIGN   (0x042A)
#define U_CYR_C_YERU        (0x042B)
#define U_CYR_C_SOFT_SIGN   (0x042C)
#define U_CYR_C_E           (0x042D)
#define U_CYR_C_YU          (0x042E)
#define U_CYR_C_YA          (0x042F)


/* Russian S letters  */
#define U_CYR_S_A             (0x0430)
#define U_CYR_S_BE            (0x0431)
#define U_CYR_S_VE            (0x0432)
#define U_CYR_S_GHE           (0x0433)
#define U_CYR_S_DE            (0x0434)
#define U_CYR_S_IE            (0x0435)
#define U_CYR_S_IO            (0x0451)
#define U_CYR_S_ZHE           (0x0436)
#define U_CYR_S_ZE            (0x0437)
#define U_CYR_S_I             (0x0438)
#define U_CYR_S_SHORT_I       (0x0439)
#define U_CYR_S_KA            (0x043A)
#define U_CYR_S_EL            (0x043B)
#define U_CYR_S_EM            (0x043C)
#define U_CYR_S_EN            (0x043D)
#define U_CYR_S_O             (0x043E)
#define U_CYR_S_PE            (0x043F)
#define U_CYR_S_ER            (0x0440)
#define U_CYR_S_ES            (0x0441)
#define U_CYR_S_TE            (0x0442)
#define U_CYR_S_U             (0x0443)
#define U_CYR_S_EF            (0x0444)
#define U_CYR_S_HA            (0x0445)
#define U_CYR_S_TSE           (0x0446)
#define U_CYR_S_CHE           (0x0447)
#define U_CYR_S_SHA           (0x0448)
#define U_CYR_S_SHCHA         (0x0449)
#define U_CYR_S_HARD_SIGN     (0x044A)
#define U_CYR_S_YERU          (0x044B)
#define U_CYR_S_SOFT_SIGN     (0x044C)
#define U_CYR_S_E             (0x044D)
#define U_CYR_S_YU            (0x044E)
#define U_CYR_S_YA            (0x044F)

#endif /* __U_H__ */
